Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Interpretowany język programowania Caracal


MXVOL

Rekomendowane odpowiedzi

Opublikowano
Witam, chciałbym dzisiaj zaprezentować mój prosty, interpretowany język programowania.

 



 

Uruchomienie aplikacji: Ustawienie w rejestrze uruchamiania plików .crc za pomocą Caracal.exe, bądź ręczne przeciąganie danego skryptu na Caracal.exe

 

Polecenia, funkcje wbudowane:

 

if zmienna argument zmienna polecenie - tradycyjny operator warunkowy

 

operatory:

==

<=

>=

<

>

!=

 

Przykład:

 

if Magda > Antek print Magda to wielkolud

 

 

 

get - funkcja wbudowana nieposiadająca żadnych argumentów, służy do pobrania znaku z klawiatury (bez zatwierdzania klawiszem enter), a następnie do zmiennej "char" zapisuje kod ascii klawisza, który kliknęliśmy

 

 

signal zmienna zmienna - sygnał z głośników, popularnie znany jako beep :v. Pierwsza zmienna, to tak jak w C++, wysokość w hercach, zaś druga, to czas trwania w milisekundach.

 

Przyklad:

 

signal sto dwiescie

 

 

 

set zmienna wartość/argumenty - tworzenie zmiennych.

 

Posiada sporo operatorów:

 

+ - dodaje do siebie dwie liczby, przyklad: set zus + hajs staruszki

 

- - odejmuje od siebie dwie liczby, przykład: set roznica - odjemna odjemnik

 

* - mnoży przez siebie dwie liczby, przykład: set iloczyn * czynnikpierwszy czynnikdrugi

 

/ - dzieli przez siebie dwie liczby, przykład: set kasia / michal antoni

 

% - wyznacza resztę z dzielenia dwóch liczb, przykład: set zmienna % druga_zmienna trzecia_zmienna

 

^ - potęguje przez siebie dwie zmienne, przykład: set zmienna ^ liczba potega

 

rand - wyznacza losową liczbę, przykład: set kasia rand seven eight (losuje liczby z zakresu seven-(seven+eight) = seven-15)

 

~ - zaokrągla obecną wartość zmiennej, przykład: set garnek ~

 

~^ - zaokrągla obecną wartość zmiennej w górę, przykład: set garnek ~^

 

~V - zaokrągla obecną wartość zmiennej w dół, przykład: set garnek ~V

 

>-< - wyznacza wartość przeciwną z aktualnej liczby, która znajduje się w danej zmiennej, przykład: set garnek >-<

 

| - wyznacza wartość bezwzględną z aktualnej liczby, która znajduje się w danej zmiennej, przykład: set garnek |

 

time.hour - zapisuje do danej zmiennej aktualną godzinę, przykład: set godz time.hour

 

time.minute - zapisuje do danej zmiennej aktualną minutę, przykład: set min time.minute

 

time.second - zapisuje do danej zmiennej aktualną ilość sekund, przykład: set sek time.second

 

time.milliseconds - zapisuje do danej zmiennej aktualną ilość milisekund, przykład: set mil time.milliseconds

 

time.day - zapisuje do danej zmiennej aktualny numer dnia w miesiącu, przyklad: set dzien time.day

 

time.month - zapisuje do danej zmiennej aktualny miesiąc, przykład: set mie time.month

 

time.year - zapisuje do danej zmiennej aktualny rok, przykład: set rok time.year

 

movr - przesunięcie bitowe w prawo o n bitów, przykład: set derp movr five

 

movl - przesunięcie bitowe w lewo o n bitów, przykład: set derp movl five

 

Jeśli popełnimy jakiś błąd, np w nazwie zmiennej użyjemy cyfry, interpreter nas o tym poinformuje, aczkolwiek zmienna i tak się utworzy i będziemy mogli z niej normalnie korzystać.

 

Zmienne można także deklarować w następujący sposób:

 

zmienna = wartosc

 

aczkolwiek nie można wtedy używać wszelkich powyższych operatorów.

 

 

 

 

baptism tytuł - nadaje tytuł oknu, przykład: baptism Test tytulu

 

#INFORMACJA: wszelkie polskie znaki, które występują w poleceniach, które mają wpływ na wygląd konsoli (tytuł, tekst wyświetlany), są usuwane przez interpreter

 

 

minimalize this - minimalizuje okno programu

 

simulate kod_ascii - symuluje naciśnięcie klawisza, którego wartość ascii jest zapisana w zmiennej, którą mu podajemy, przykład zrobienia fullscreen'a na Windows 10:

 

Należy na owym systemie kliknąć F11 (ascii: 122), aby uzyskać fullscreen, toteż można to zapisać tak:

 

set fullscreen 122

simulate fullscreen

 

jest to symulacja jedno-klawiszowa, tzn. od razu po "naciśnięciu" danego klawisza, przestaje go naciśkać. Żeby uzyskać stały efekt, należy po "simulate" dopisać "durable", a dopiero potem zmienną z kodem acii.

 

 

clicked mb - program pauzuje się, do czasu, aż klikniemy dowolny przycisk myszy

clicked rb - program pauzuje się, do czasu, aż klikniemy prawy przycisk myszy

clicked lb - program pauzuje się, do czasu, aż klikniemy lewy przycisk myszy

 

 

precision zmienna - wyznacza precyzję wypisywania liczb dziesiętnych

 

 

print tekst - wyświetlanie tekstu bez przejścia do następnej linii, przykład: print Ala ma kota, bo sierotka ma rysia

 

printl tekst - wyświetlanie tekstu z przejściem do następnej linii, przykład: printl Ala ma kota, bo sierotka ma rysia

 

var zmienna - wyświetla wartość zmiennej

 

call plik.crc zmienne - wywołuje inny plik z kodem Caracal'u, zaś w miejscu "zmienne", możemy podać nazwy zmiennych, których wartości chcemy przesłać z obecnego pliku, do tamtego. Można w ten sposób robić proste funkcje. Przykład:

 

call derp.crc Jasiu Małgosia Kornel

 

można też wywoływać pliki bez przesyłania zmiennych, służy do tego operator "not". przykład:

 

call derp.crc not

 

color zmienna - zmiana koloru tekstu, nie podaje się koloru w systemie hex, tylko kolejno od 0-255, tak jak w bibliotece windows.h w C++. Przykład:

 

set kolorek 156

color 156

print To jest tekst zrobiony w kolorze 156

 

input zmienna - wczytuje wartość dla danej zmiennej od użytkownika.

 

next line - przejście do następnej linii (w wyświetlaniu tekstu)

 

system polecenie - wywoływanie jednoliniowych poleceń z CMD

 

stop program - pauzuje działanie programu, aż do kliknięcia klawisza enter

 

sleep zmienna - zatrzymuje wykonywanie programu, na tyle milisekund, ile jest zapisane w zmiennej, którą podajemy tej funkcji

 

exit program - zakończenie działania programu

 

tellt tekst - wywołanie w systemowym syntezatorze mowy tekstu, który wpiszemy (w Win8 i Win10 obsługuje język polski, aczkolwiek na starszych systemach jest tylko angielski)

 

tell zmienna - wywoływanie w sytemowych syntezatorze mowy zmiennej, którą podamy

 

image obrazek.bmp - wyświetla obrazek

 

 

Jeśli pomylimy się z nazwą jakiejś funkcji/polecenia, to interpreter wyświetli nam:

 

ERROR: Use not-existent command in <linia w której popełniliśmy błąd> line!

 

 

 

To tyle :v. Język jest cały czas ulepszany (pisany w C++), mam nadzieję, że się spodoba ;-;.

jw19e8.png

Opublikowano

Jedno słowo - wow!

 

Sam kiedyś próbowałem zrobić coś takiego, jednak szybko mi się to znudziło..

 

Z mojej strony wielki podziw i na pewno w wolnym czasie się tym pobawię. ;)

Opublikowano

@up

Niezbyt mi się widzi udostępnianie całego kodu :v.

Kod nie jest kompilowany do żadnego bytecod'u, jest parsowany i natychmiastowo wykonywany.

 

Btw.

Zapomniałem napisać, że są jeszcze dodatkowe funkcje, aczkolwiek wymagają one zainstalowanego gcc, bowiem służą do robienia wstawek w Assembly bądź C++.

Na początek należy zadeklarować, iż posiadamy pakiet gcc, następującym poleceniem:

 

define gcc

 

następnie otworzyć pisanie kodu:

 

cpp begin

 

i każdą linijkę kodu C++ piszemy po "cpp", a gdy już kończymy, piszemy:

 

cpp end

 

przykład:

 

define gcc

cpp begin

cpp #include <iostream>

cpp using namespace std;

cpp int main()

cpp {

cpp     cout<<"Hello, World!"<<endl;

cpp }

cpp end

 

 

tak samo jest z assembly, tylko zamiast cpp piszemy asm :v.

jw19e8.png

Opublikowano

@up

Niezbyt mi się widzi udostępnianie całego kodu :v.

 

Czemu? Wstydzisz się?

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

@up

Po prostu chciałbym, abym tylko ja miał do niego dostęp. Nie każdy program musi mieć opublikowany source code :).

jw19e8.png

Opublikowano

FLAHAHAHHAHHAHHAHAH

Boze jakie gowno

 

Gosciu, nie zabieraj sie za programowanie w wieku 12 lat.

Polowa kodow z neta, polowa nieudolnien apisana.

Skladnia jak pod wplywem LSD.

 

Nie moge po prostu takie gowno :D

 

Kokokoko, wlasnie. Nie zabieraj sie za programowanie bo tlko sie osmieszysz leszczu.

naucz sie uzywac structow itd. Widac ze nie udostepnisz kodu nigdzie bo wyglada ja k gowno (Swoja droga juz zdekompilowany :>)

Po co to w ogole piszesz, nie zastniejesz nigdy na tym forum.

Daj se spokoj dziecko.

 

Właśnie pokazaliście wyżej kto tu jest dzieckiem..  :) (Tak wiem, że to trolle, ale czy oni mają po 10 lat??)

Opublikowano

Kokokoko, wlasnie. Nie zabieraj sie za programowanie bo tlko sie osmieszysz leszczu.

naucz sie uzywac structow itd. Widac ze nie udostepnisz kodu nigdzie bo wyglada ja k gowno (Swoja droga juz zdekompilowany :>)

Po co to w ogole piszesz, nie zastniejesz nigdy na tym forum.

Daj se spokoj dziecko.

Znamienity hejt, milordzie.

jw19e8.png

Opublikowano

FLAHAHAHHAHHAHHAHAH

Boze jakie gowno

 

Gosciu, nie zabieraj sie za programowanie w wieku 12 lat.

Polowa kodow z neta, polowa nieudolnien apisana.

Skladnia jak pod wplywem LSD.

 

Nie moge po prostu takie gowno :D

 

On się uczy i jest duży krok przed tobą, a ty nadal w tibie grasz i gówno za przeproszeniem będziesz z tego mieć ;)

 

 

Kokokoko, wlasnie. Nie zabieraj sie za programowanie bo tlko sie osmieszysz leszczu.

naucz sie uzywac structow itd. Widac ze nie udostepnisz kodu nigdzie bo wyglada ja k gowno (Swoja droga juz zdekompilowany :>)

Po co to w ogole piszesz, nie zastniejesz nigdy na tym forum.

Daj se spokoj dziecko.

 

To samo co do kolegi wyżej. Wiewiórki głosu nie mają :>

Opublikowano

 

FLAHAHAHHAHHAHHAHAH

Boze jakie gowno

 

Gosciu, nie zabieraj sie za programowanie w wieku 12 lat.

Polowa kodow z neta, polowa nieudolnien apisana.

Skladnia jak pod wplywem LSD.

 

Nie moge po prostu takie gowno :D

 

On się uczy i jest duży krok przed tobą, a ty nadal w tibie grasz i gówno za przeproszeniem będziesz z tego mieć ;)

 

 

Kokokoko, wlasnie. Nie zabieraj sie za programowanie bo tlko sie osmieszysz leszczu.

naucz sie uzywac structow itd. Widac ze nie udostepnisz kodu nigdzie bo wyglada ja k gowno (Swoja droga juz zdekompilowany :>)

Po co to w ogole piszesz, nie zastniejesz nigdy na tym forum.

Daj se spokoj dziecko.

 

To samo co do kolegi wyżej. Wiewiórki głosu nie mają :>

 

Ej, też gram w tibie i mnie obrażasz kolego, to boli ;/.

8LTfBGw.jpg

Opublikowano

@up

Uruchamiając sam interpreter chyba oczywiste, że nic z tego nie wyjdzie :v. Pisałem, że należy jakiś plik z kodem uruchomić za pomocą interpretera ;-;.

jw19e8.png

Opublikowano

 

 

FLAHAHAHHAHHAHHAHAH

Boze jakie gowno

 

Gosciu, nie zabieraj sie za programowanie w wieku 12 lat.

Polowa kodow z neta, polowa nieudolnien apisana.

Skladnia jak pod wplywem LSD.

 

Nie moge po prostu takie gowno :D

 

On się uczy i jest duży krok przed tobą, a ty nadal w tibie grasz i gówno za przeproszeniem będziesz z tego mieć ;)

 

 

Kokokoko, wlasnie. Nie zabieraj sie za programowanie bo tlko sie osmieszysz leszczu.

naucz sie uzywac structow itd. Widac ze nie udostepnisz kodu nigdzie bo wyglada ja k gowno (Swoja droga juz zdekompilowany :>)

Po co to w ogole piszesz, nie zastniejesz nigdy na tym forum.

Daj se spokoj dziecko.

 

To samo co do kolegi wyżej. Wiewiórki głosu nie mają :>

 

Ej, też gram w tibie i mnie obrażasz kolego, to boli ;/.

 

 

 

Wybacz, jeśli uraziłem, poniósł mnie stereotyp typowego tibijczyka ;p

Opublikowano

@ref

Aktualizacja:

- chwilowo usunięto polecenie signal, zostanie przywrócone w następnej aktualizacji

- dodano polecenie mouse argument argument:

Przesuwa kursor myszy na określone koordynacje, przykład:

set x 50

set y 67

mouse x y 

 

- dodano polecenie cursor argument argument:

Przesuwa kursor konsoli na określone koordynacje, przykład:

set x 50

set y 67

cursor x y

 

Download: http://www.mediafire.com/download/y9ektqo24a1a2h5/Caracal.exe

jw19e8.png

Opublikowano

Ukryłem temat, gdyż, jak już mówiłem, nie chcę publikować kodu :). Jeśli chcesz, możesz go wrzucić sobie na pastebina, i publikować. Po za tym, nie masz dostępu do obecnego źródła, więc nie wiesz, czy jest to większość, czy mniejszość. Jestem jak najbardziej wdzięczny osobie, która mi w tym pomogła, aczkolwiek wątpię, żeby chciała, abym publikował tu jej nick, bo gdyby projekt okazał się "słaby", to byłoby to dla niej kompromitacją. Gdy ty piszesz gdzieś swoje imię, to nie piszesz, że rodzice Ci je wybrali, i to dzięki nim rozumiesz podstawy świata :v. (nie jest to "pojazd po rodzicach", tylko przykład, bo taki wpadł mi do głowy ;-; )

jw19e8.png

Opublikowano

Gdy ty piszesz gdzieś swoje imię, to nie piszesz, że rodzice Ci je wybrali, i to dzięki nim rozumiesz podstawy świata :v.

Czym innym od pomocy w zrozumieniu jest skopiowanie kluczowej części kodu. Sądzę, że Vesimowi chodzi wyłącznie o to, że nie wspomniałeś o tym:

chciałbym dzisiaj zaprezentować mój prosty, interpretowany język programowania.

I moim zdaniem ma trochę racji.

708121422388637873334.png

Opublikowano

Skopiowaniem nazwałbym to wtedy, gdyby ta osoba robiła swój własny język, i wtem też wziąłbym sobie ten kod, ale skoro poprosiłem tam, by napisano mi tę podstawę, to jest to po prostu odebranie czegoś, co zostało zrobione dzięki łasce tej osoby.

Ta osoba nigdy nie napisała, że chce, abym o niej pisał, pisząc o tym języku. W owym forum jest masa programów, w których ktoś Ci pomoże/zacznie pisać początek, ale się o nim nie pisze, bo ta osoba o to nie prosi, i raczej tego nie chce.

jw19e8.png

Opublikowano

Skopiowaniem nazwałbym to wtedy, gdyby ta osoba robiła swój własny język, i wtem też wziąłbym sobie ten kod

Wtedy to byłby plagiat. Teraz to jest tylko skopiowanie, czyli powtórzenie kodu, który otrzymałeś.

708121422388637873334.png

Opublikowano

Skoro został on przygotowany dla mnie, na moją prośbę, to nie ma w skopiowaniu nic złego.

jw19e8.png

Opublikowano

Ale... jedyna "dobrze" napisana rzecz w tym jezku skryptowym jest bezczelnie skopiowana z tamtego postu. Polskie nazewnictwo funkcji(i pewnie zmiennych), tylko to co skopiowane jest po angielsku(FileScriptManager i reader BMP).

Brak generowania AST(bez tego ciezko zrobic cos wiekszego). Skladnia(wedlug mnie) to takie 2/10, tellt/tell nie lepiej tell "tekst"/tell zmienna? brak normalnie zapisanych operacji matematycznych(2 + 2 - 4)

Nie pomagam na PW, od tego macie forum!!!

 

#PHP-things

 

 

08FMpDu.png

 

Opublikowano

Argumentem jest w tym wypadku zmienna, którą następnie posługuje się funkcja wbudowana, więc myślę, że jestem w stanie to rozróżnić. :)

Po za tym, ucząc się C++, nie koniecznie uczę się teorii, toteż nie muszę znać nazw każdego kawałka kodu, aby móc coś takiego napisać.

Dziecko, które uczy się polskiego, nie uczy się od razu, czym jest interpunkcja, gramatyka, czasownik, przymiotnik, równoważnik zdania, entc. ale jest w stanie konstruować zrozumiałe zdania, którymi skutecznie komunikuje się z innymi - czyli działa. Tak samo ja nie muszę być obeznany co, jak się nazywa, wystarczy, że umiem stworzyć kod, który będzie działał, a to, że tych nazw nie znam, nie jest równoważne z tym, że nie znam języka, lecz jest to tylko bełkot zwolenników teorii.

jw19e8.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...